home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 January / Macworld (1998-01).dmg / Games World / Game Utilities / Sound_Editor_1.0b1 / Read Me (Beta) < prev    next >
Text File  |  1997-10-27  |  21KB  |  339 lines

  1. Marathon Sound Editor 1.0b1
  2. by Charles Lechasseur
  3.  
  4.  
  5. So soon? :)
  6.  
  7. It has been announced for quite some time, but it's finally here! The Marathon Sound Editor will let you edit Marathon 2 and Marathon Infinity Sound Files, create Sound Shuttles to auto-install sounds back in a Sounds file (cool for distribution) and create Sound Suitcases to store your sounds.
  8.  
  9.  
  10.  
  11. Claimer
  12.  
  13. I'll try to describe the various features of the Sound Editor with as much details as possible. However, keep in mind that this ReadMe has been written by a programmer, at 23:42... I might forget something. :)
  14.  
  15.  
  16.  
  17. Lexicon
  18.  
  19. Sound File: A file created by Marathon, to store sound in a custom format.
  20.  
  21. Sound Shuttle: A standalone installer that can contain sounds to be installed in a Sound file. Pratical for wide distribution.
  22.  
  23. Sound Suitcase: A file that can contain sounds, but that contains no code for auto-installing those sounds. Pratical for backup storage of sounds.
  24.  
  25. Sound window: Generic term to describe a window associated with a Sound File, Shuttle or Suitcase.
  26.  
  27. Sound Clipboard: A "fake" clipboard, internal to the sound editor, that can store up to five sounds. The editor supports cutting/copying/pasting sounds with this clipboard. It can also communicate with the real mac Clipboard.
  28.  
  29. Sound set: Each Sound File is divided in two sets of sounds: 8-bit and 16-bit. Each set contains (or should contain) the same sounds, except in different versions.
  30.  
  31. Sound class: Each set of sounds is divided in classes. The number of classes is different in M2 and M00: M2 has 203 classes per set, and M00 has 215. Each class represents a particular sound occurence. For example, it might be the sound of the Enforcer waking up, or the gun firing. Each class can contain up to five "variations" of the sound. If "More Sounds" is checked in the game's prefs, the game will load all variations and choose one randomly when playing it. Otherwise it will only load the first one.
  32.  
  33.  
  34.  
  35. Creating, opening & closing files
  36.  
  37. You can create Sound Shuttles/Suitcases via the File menu. Select the "New" item, and pick the kind of file you want to create. The editor will create it and open it.
  38.  
  39. You can open Sound Files/Shuttles/Suitcases via the File menu. Select the "Open" item and choose the file in the dialog. You can also drag'n'drop any of those files on the editor to open it.
  40.  
  41. To close a file, make sure its window is the frontmost, active window, and select the "Close" item from the File menu. You can also close the window just like any mac window, by clicking in the close box.
  42.  
  43.  
  44.  
  45. The Sound file window
  46.  
  47. When you open a Sound window, you see something like the following (please excuse the pre-OS8 look):
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74. Let's take a little moment to explain the use of all the elements.
  75.  
  76. 1) The "Sound Class" popup menu
  77.  
  78. This popup menu allows you to select the current sound class. You can only work on a single sound class at once in a given file. To switch sounds between two classes, you'll need to cut & paste them.
  79.  
  80. The popup menu displays the class' number as well as its name, as defined in Anvil/M00.
  81.  
  82. 2) 8-bit/16-bit buttons
  83.  
  84. These allow you to select the active sound set or, rather, to choose between editing 8-bit and 16-bit sounds. Each set must be edited independently.
  85.  
  86. 3) Sounds buttons
  87.  
  88. These radio buttons in fact represent the class' sounds. A class can contain up to five sounds. Each sound is labeled with its variation number, along with the sound's size in bytes.
  89.  
  90. You can select a sound by clicking on it. Command-clicking allows you to select/deselect multiple separated sounds. Shift-clicking allows you to select all sounds in-between two sounds (Shift-clicking to deselect has the same effect as command-clicking to deselect).
  91.  
  92. 4) Class flags
  93.  
  94. These represent various flags used by the game to handle the current class, modifying the behaviour of its sounds. Here's a brief explanation of each flag. Keep in mind that this is not the official explanation but an "educated guess" based on my knowledge of the game.
  95.  
  96. - Cannot be restarted: The sound cannot play over and over, like an ambient sound. It'll play once and then shut up.
  97. - Resists pitch changes: this flag doesn't exist. Anvil lists it and even checks it for some classes, but it's non-existant in the Sound File itself. I have no idea how Anvil comes up with it. Experience has told me that Anvil's sound-editing capabilities are somewhat limited, to say the least. This is always grayed-out.
  98. - Can't change pitch: Pretty obvious. Various things could cause a sound to change pitch in the game: hearing it in a media, assigning it to a Tiny creature, etc.
  99. - Can't be obstructed: This sound cannot be obstructed by walls, etc. Actually i don't really know if it has an effect in the game.
  100. - Can't be media obstructed: This sound travels through media. Again, i have no idea if this is ever used in the game for real.
  101. - Is Ambient: The sound is assigned as an ambient sounds. I don't know if this must be checked for the game to know it's an ambient sound, or if you just have to place your ambient sounds in the right slots.
  102.  
  103. Click on a check box to enable/disable that flag.
  104.  
  105. 5) Volume popup menu
  106.  
  107. Allows you to select the volume at which sounds in the current class will be played in the game. Three possible volumes: soft, medium or hard (oops, loud, sorry).
  108.  
  109. 6) Class ID
  110.  
  111. Each sound class in the sound file must have a unique ID, between 8192 and 32767, and it must be divisible by 5. The ID for the current class is listed here. If allowed in the prefs, you can click in this box to edit the class ID (see below).
  112.  
  113.  
  114.  
  115. The Windows menu
  116.  
  117. In the editor, there's an easy way to navigate through your open windows if you're lost: the Windows menu. All open windows are listed in this menu; to select one, just select its title in the menu. The first 10 open windows even have keyboard equivalents (Cmd-1 to Cmd-0).
  118.  
  119. The menu also allows access to the Sound Clipboard (keyboard equiv.: Cmd-L) when there's another open window on the screen.
  120.  
  121. Note that closing the Sound Clipboard window merely hides it - you can make it reappear by selecting it in the Windows menu.
  122.  
  123. NOTE: The Sound Clipboard window cannot be viewed if there are no other windows on screen. If you close the last window, you'll see the Sound Clipboard window disappear. Why? Well, frankly, it's because I had bus error crashes if I left that window alone on the screen. :) I hope to be able to find the fix someday... in the meantime, it's not THAT hard to live with.
  124.  
  125.  
  126.  
  127. Manipulating sounds
  128.  
  129. Let's take a look at the various things you can do with the sounds. Most of these functions are available in the Edit or Sounds menu.
  130.  
  131. - Selecting sounds
  132.  
  133. Aside from the above technique, you can select all the sounds in the current class with the "Select All" command in the Edit menu (keyboard equiv.: Cmd-A).
  134.  
  135. You can also navigate through the sounds with the up & down arrows. This can be combined with Shift to select multiple sounds.
  136.  
  137. - Cutting, copying & pasting sounds
  138.  
  139. The heart of the work is obviously done by cutting, copying & pasting sounds in and out of Sounds files. To cut or copy (a) sound(s), first select the sound(s) you want, and choose either "Cut" or "Copy" from the Edit menu (keyboard equiv.: Cmd-X and Cmd-C). The given sounds will be deleted if Cut is selected, then placed in the Sound Clipboard.
  140.  
  141. The Sound Clipboard is internal to the Sound Editor itself. To view it, select it in the Windows menu, or hit Cmd-L. You'll see something like this (again with a pre-OS8 look):
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158. The sounds themselves are displayed just like in a regular Sound window... you can select them the same way and do all the things you can do with regular sounds, except cut & copy them.
  159.  
  160. Whenever you cut or copy (a) new sound(s), the previous content of the clipboard is trashed.
  161.  
  162. You can paste the content of the Sound Clipboard in the current class of the active window (i.e. frontmost window) by choosing "Paste" from the Edit menu (keyboard equiv.: Cmd-V). This will add the sounds to the class. Make sure you have enough room, otherwise it won't be possible to paste.
  163.  
  164. You can clear the content of the Sound Clipboard by selecting "Clear Sound Clipboard" from the Edit menu (keyboard equiv.: Cmd-K).
  165.  
  166. Another cool trick you can do with the Sound Clipboard is transfer its content to and from the real Mac clipboard that is used by other apps. This is useful if you're copying sounds from another source (say, ResEdit) into a Sound file.
  167.  
  168. If the Sound Clipboard contains (a) sound(s), you can transfer it (or the first sound it contains) to the mac clipboard by clicking in the "To Clip" button of the Sound Clipboard window, or by selecting "Sound Clipboard -> Clipboard" from the Edit menu (keyboard equiv.: Cmd-≥; that's Opt-. with a Us keyboard layout).
  169.  
  170. If the mac clipboard contains a sound, you can transfer it to the Sound Clipboard by clicking in the "From Clip" button of the Sound Clipboard window, or by selecting "Clipboard -> Sound Clipboard" from the Edit menu (keyboard equiv.: Cmd-≤; that's Opt-, with a US keyboard layout).
  171.  
  172. It's also possible to instruct the editor to transfer the sounds to and from the various clipboards automatically; see below, in the Preferences section.
  173.  
  174. - Selecting classes
  175.  
  176. Aside from fiddling with the Sounds popup menu as described above, there are other techniques you can use to navigate through the sound classes.
  177.  
  178. You can select a class via its class number by choosing "Select Sound Class..." from the Sounds menu (keyboard equiv.: Cmd-F). You are then prompted to enter the class number. Choosing OK will select that class.
  179.  
  180. You can browse through the classes by categories if you wish. A set of sub-menus of the Sounds menu, starting at the "Select Class >" item, allows you to navigate through the classes easily by category. This is useful when you're a little lost, especially since the sounds are not properly grouped in the Sound file; it's also useful to know what are the slots for ambient and random sounds.
  181.  
  182. Keyboard equivalents are also available to navigate through the classes: you can switch between them with the left & right arrow. This will wrap-around if you reach the end of the menu.
  183.  
  184. Note that you can also switch between the two sound sets (8-bit and 16-bit) by pressing the Tab key.
  185.  
  186. - Deleting sounds
  187.  
  188. You can delete (a) sound(s) by first select it(them), then choosing "Delete Sound(s)" from the Sounds menu (keyboard equiv.: Cmd-D) or pressing the backspace key. Unless you changed that in the prefs, you're prompted to confirm the move.
  189.  
  190. Normally you are not allowed to delete the last sound in a class, unless you change that in the prefs (see below).
  191.  
  192. - Playing sounds
  193.  
  194. You can play the selected sound(s) by choosing "Play Sound(s)" from the Sounds menu (keyboard equiv.: Cmd-T), by double-clicking on it if it's a single sound, or by pressing the return or enter key. While the sound(s) is(are) playing, you can stop them by pressing ESC or Cmd-.
  195.  
  196. - Importing & Exporting sounds
  197.  
  198. You can import and export sounds in System-7 sounds format.
  199.  
  200. To import a sound, choose "Import From System 7 Sound file..." (keyboard equiv.: Cmd-I) and choose the file in the standard file selection dialog. This will only be available if there's room for a sound in the current class.
  201.  
  202. To export the selected sound(s), choose "Export as System 7 Sound file(s)..." (keyboard equiv.: Cmd-E) and choose the name of the file(s) in the standard save dialog. The default name is the name of the class with the variation number of the sound at the end.
  203.  
  204. Currently, you can't drag'n'drop a System-7 sound file on the editor... or, rather, it'll have no effect.
  205.  
  206. - Editing the sound class ID
  207.  
  208. If you chose to permit so in the prefs (see below), you can edit the ID of the current class by choosing "Edit Sound Class ID" from the Sounds menu (keyboard equiv.: Cmd-?) or click on the ID in the Sound window. You're then presented with the following dialog (in glorious pre-OS8 technicolor):
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222. You can change the class ID by entering a new one in the text box (remember it must be between 8192 and 32767, and must be divisible by 5). If you want the class to be unused (i.e. not loaded by the game, click in the "Unused class" check box or enter -1 as class ID. Click OK when you're done. If the ID is valid, it'll be changed. If the class has been marked as unused and it contains sounds, you'll be asked to confirm, since the editor will have to delete all its sounds to mark it as unused.
  223.  
  224. IMPORTANT NOTE: the ID must be unique, but right now the editor does not check for ID uniqueness. Be careful when editing class ID, it can make the game crash pretty easily if entered incorrectly.
  225.  
  226.  
  227.  
  228. Preferences
  229.  
  230. In the File menu, you'll find the Preferences submenu. There are four types of preferences you can set, and we'll cover them one by one.
  231.  
  232. Editor Preferences
  233.  
  234. This governs most of the editor settings. Here's an explanation of each setting:
  235.  
  236. - Keep files open: Checking this will cause the files to remain open while editing, avoiding the need to open & close them all the time, thus speeding up disk access a bit. However if the editor crashes it might cause slight problems, like a file remaining open, thus needing to restart to access it. (Why am I saying this, eh? :)
  237.  
  238. - Confirm before deleting a sound: This is checked by default. Unchecking it will remove the confirmation dialog when deleting a sound. Be sure to know what you're deleting if you uncheck this as there's no Undo in the editor.
  239.  
  240. - Allow empty sound classes: If checked, you can delete the last sound in a class. Note that a used class (one that has an ID different from -1) MUST contain at least one sound to work properly, so don't leave them empty or you'll probably crash the game.
  241.  
  242. - ...and class ID modification: If checked, you can modify the class IDs (see above).
  243.  
  244. - Verify Sound files upon opening: If checked, the editor will scan Sound Files a bit to check for irregularities. This is by no mean a Norton type of scan, of course :)
  245.  
  246. - Editing what prefs when opening prefs file: Governs what prefs dialog will show up when you double-click on the prefs file in the Finder or drag'n'drop it on the editor (the prefs file is named "Mara Sound Editor Prefs" and is located in the Preferences folder, inside the System Folder).
  247.  
  248. Sound Clipboard Preferences
  249.  
  250. This governs the behavior of the Sound Editor. The two settings are:
  251.  
  252. - Transfer from clip upon activating: If checked, the content of the real clipboard will be transferred to the Sound Clipboard when the editor "activates" (i.e., becomes the active application). Of course this is only done if the real clipboard contains a sound.
  253.  
  254. - Transfer to clip upon deactivating: If checked, the first sound of the Sound Clipboard, if any, will be transferred to the real clipboard with the editor "deactivates" (i.e., goes in the background).
  255.  
  256. Both settings are very useful if you keep switching between the editor and another application to cut & copy sounds.
  257.  
  258. Shuttling Preferences
  259.  
  260. This governs the behavior of the "Shuttling" items from the Extras menu (see below). This panel allows you to instruct the editor to install empty or even unused classes too when shuttling (for all this, see below).
  261.  
  262. New Files Preferences
  263.  
  264. This governs what type of file is set as the default selection in the dialog you are presented when you create new files. This might look useless but it's time-saving, believe me. Just select the type of file you want as default.
  265.  
  266.  
  267.  
  268. Extras
  269.  
  270. In the Extras menu, you'll find lots of useful functions that couldn't fit anywhere else in the editor. We'll cover them one by one.
  271.  
  272. - Shrink a Sound file: This is similar to the action of my other sound-related program, the Sound Shrinker. After selecting a Sound File, the editor will strip it of all 16-bit sounds, reducing its size by a tremendous amount.
  273.  
  274. - Remove 8-bit sounds: Just like the Shrink above, except it removes 8-bit sounds instead of 16-bit ones. For the higher class. :)
  275.  
  276. - Shuttle to a Sound file: If the active window belongs to a Shuttle, select this to shuttle its content to a Sound File. The shuttle must be "clean" (i.e. saved to disk) for this to work.
  277.  
  278. - Shuttle...: Same as above, except you're shuttling from a shuttle you select via the standard file selection dialog.
  279.  
  280. - Compare Files: When you select this, you will be prompted to select two files, one after the other. The first file is considered the original file, and the second one is the modified one. After that, you're asked for a type of file. Then the editor will work a bit, comparing the content of the original file with the content of the modified one. It will then copy the modified classes in the modified sound file in the created file (either a Shuttle or a Suitcase). This is useful if you've been constructing a Sound file from scratch and you want to avoid distributing it all - compare it to the original file from the CD and distribute the resulting Shuttle.
  281.  
  282. - Shuttle Settings: Currently unavailable, but see below for some tidbits.
  283.  
  284.  
  285.  
  286. Behavior of a Shuttle
  287.  
  288. When you launch a Shuttle, you are prompted to select an appropriate Sound File (depending whether it's an M2 or M00-related Shuttle). You can also drag'n'drop it on the Shuttle. The Shuttle will then install all the sounds it contains in the file (copying it to a new file, of course).
  289.  
  290. In the editor, you can instruct the internal Shuttle to install empty classes, and even unused classes also. Be careful as this will most likely crush all the sounds in the original sound file.
  291.  
  292. NOTE: Although editing Shuttle settings is not yet implemented in the editor, the above-mentioned behavior of letting the Shuttle install empty and unused classes IS built into the Shuttle program. If you open the Sound Editor with ResEdit, you'll notice a TMPL resource for the "ssss" type. Keep the editor open, and open up a Shuttle with ResEdit. You'll then be able to edit its settings contained in the "ssss" resource. A 0 means that the setting is disabled, and a 1 means it's enabled. Sorry for the inconvenience, hopefully i'll be able to implement the editing of Shuttle settings in the editor itself in the future.
  293.  
  294.  
  295.  
  296. Those guys with the skulls...
  297.  
  298. I'd like to thank the following people for their invaluable help all throughout the making of the sound editor. Some of them i've lost trace of, some might not even be involved with Marathon anymore... anyway, a big thank you, guys. Without you, this thing would not exist.
  299.  
  300. Hamish Sanderson for encouraging me to work on sounds as well as shapes. He kicked me in the butt for quite a while before finally getting me to do it :)
  301.  
  302. James Knight for providing the specs of the M2/M00 Sound File format. Without this, of course, the editor would be unthinkable. Thanks a million, man!
  303.  
  304. Thomas Worth for the cool icon :)
  305.  
  306. Bo Lindbergh for helping me with Volume and Flags, and for coding all those awesome and damn useful marathon utilities. You rule, Bo. Sorry, had to say it.
  307.  
  308. Stephan "STef" Bondier for providing extensive feedback and giving me suggestions for many improvements. Without him a lot of bugs would still be sitting around.
  309.  
  310. Bill Catambay for his suggestions to make the editor more "user-friendly" and practical.
  311.  
  312. I'd also like to thank the beta-testers who suffered through the painful bugs of the early versions of the editor:
  313.  
  314.   Hamish Sanderson
  315.   Bill Catambay
  316.   Jazzoom
  317.   Thomas Worth
  318.   Gabe Rosenkoetter
  319.   jerOme
  320.   Daniel Whelan
  321.   Stephen Ritchie
  322.  
  323.  
  324.  
  325. Be vewwy vewwy quiet...
  326.  
  327. 1.0b1 - First public release
  328.  
  329. Although i realize this is by no mean a perfect product, i consider it usable. Its main flaw is that it will quit whenever it encounters an error, except when playing a sound. The key is to not make it crash. :) The only way i've been able to crash it recently is by pasting a huge sound. If you're working with huge sounds, give the editor a lot more memory and you should be safe, although i'm not making any guarantees.
  330.  
  331. One word of warning. I'm perfectly willing to take bug reports and comments for improvements, but you might find it a long time before you see another version of this thing. I don't have that much spare time anymore, and the spare time I do have is less and less occupied with Marathon-related things. Not that I'm tired of Marathon, but I'm willing to move on to something else now.
  332.  
  333. If someone would like to take a shot at improving the editor themselves, i'd be happy to share the source code. The downside: it's all in pascal and it's ugly as hell. But it's workable. If you're interested, just e-mail me.
  334.  
  335.  
  336.  
  337. Who's got the e-mails?
  338.  
  339. You can reach me at doh@videotron.ca for comments and bug reports. You can find my other marathon utils on my web page at http://pages.infinit.net/doh/marathon/.